Kế thừa lớp numpy.ndarray là một quyết định kiến trúc cấp cao được sử dụng để tạo ra các cấu trúc dữ liệu chuyên biệt theo lĩnh vực, bao gồm dữ liệu bổ sung (như đơn vị đo, tọa độ hoặc tốc độ lấy mẫu) cùng với dữ liệu số thô. Khác với các lớp Python thông thường, các đối tượng NumPy thường được tạo mà không cần gọi __init__.
Ba Phương thức Khởi tạo
Người thiết kế phải xem xét ba con đường khởi tạo khác nhau mà phương thức khởi tạo chuẩn bị bỏ qua:
- Xây dựng rõ ràng: Sử dụng tên lớp (xử lý bởi
__new__). - Chuyển đổi quan sát: Chuyển đổi một mảng hiện có thành lớp con của bạn.
- Tạo từ khuôn mẫu: Tạo một đoạn cắt hoặc bản sao từ một thể hiện lớp con hiện có.
Hàm đặc biệt __array_finalize__ được sử dụng như điểm hội tụ nơi dữ liệu bổ sung được đồng bộ giữa các con đường này.
Tính bất ổn hành vi
Việc kế thừa lớp tạo ra mối liên kết chặt chẽ với C-API của NumPy. Các thao tác trả về giá trị vô hướng (ví dụ, np.mean()) thường "loại bỏ" đặc tính lớp con, trở lại kiểu mặc định ndarray. Quản lý dữ liệu bổ sung vì thế luôn tiềm ẩn rủi ro trừ khi được xử lý cẩn thận thông qua chuyển trạng thái.
isinstance(obj, np.ndarray). Ngược lại, Thành phần (bọc một mảng) an toàn hơn.